home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / pc / windows / qtw_201 / setup / samples / mmio_dh / common.cpp next >
Encoding:
C/C++ Source or Header  |  1994-12-19  |  2.3 KB  |  91 lines

  1. //
  2. // Project:      QuickTime for Windows
  3. //
  4. // Component:    Data Handler
  5. //
  6. // Description:  Code common to all data handlers
  7. //
  8. // ---------------------------------------------------------------------
  9. // Windows header files
  10. #include <windows.h>
  11. #include <windowsx.h>
  12.  
  13. // Application header files
  14. #include "datahp.h"
  15.  
  16. // Local functions
  17. static VOID FAR PASCAL FixupCM( ENTRYFUNC lpfnCM) ;
  18. static VOID FAR PASCAL FixupTB( ENTRYFUNC lpfnTB) ;
  19.  
  20. // Global data
  21. extern "C" ENTRYFUNC lpfnQTComponentManager ;
  22. extern "C" ENTRYFUNC lpfnQTToolbox ;
  23. extern ComponentDescription cdTable;     // components in this DLL
  24.  
  25. // EJECT PAGE 
  26. /*
  27. ********************************************************************************
  28. **
  29. ** Name: FixupCM()
  30. **
  31. ** Description:
  32. **
  33. **  Establish direct linkage to Component Manager.
  34. **
  35. ********************************************************************************
  36. */
  37. static VOID FAR PASCAL FixupCM( ENTRYFUNC lpfnCM)
  38. {
  39.     lpfnQTComponentManager = lpfnCM;
  40. }
  41.  
  42. // EJECT PAGE 
  43. /*
  44. ********************************************************************************
  45. **
  46. ** Name: FixupTB()
  47. **
  48. ** Description:
  49. **
  50. **  Establish direct linkage to Movie Toolbox.
  51. **
  52. ********************************************************************************
  53. */
  54. static VOID FAR PASCAL FixupTB( ENTRYFUNC lpfnTB)
  55. {
  56.     lpfnQTToolbox = lpfnTB;
  57. }
  58.  
  59. // EJECT PAGE 
  60. /*
  61. ********************************************************************************
  62. **
  63. ** Name: THINGIDENTIFY()
  64. **
  65. ** Description:
  66. **
  67. **  Entry point called by Component Manager  This function fills the Component
  68. **  ID structure.
  69. **  
  70. ********************************************************************************
  71. */
  72. OSType FAR PASCAL THNGIDENTIFY( LPCID FAR *lplpcid)
  73. {
  74.     // allocate memory for CID information
  75.     // The memory will be freed by the Component Manager.
  76.     LPCID lpcid = ( LPCID) GetMemory( sizeof CID) ;
  77.     if ( lpcid == 0)                          // if allocation failed
  78.         return 0 ;                              // take error return
  79.  
  80.     // fill the structure
  81.     lpcid->lVersion = CID_VERSION ;
  82.     lpcid->sComponentCount = 1 ;
  83.     lpcid->lpcdTable = ( LPCD) &cdTable ;
  84.     lpcid->lpfnTBFixup = FixupTB ;
  85.     lpcid->lpfnCMFixup = FixupCM ;
  86.     *lplpcid = lpcid ;
  87.  
  88.     // return to caller
  89.     return THING ;
  90. }
  91.